package cn.eu.mqtt.model.req;

import lombok.Getter;
import lombok.Setter;

/**
 * 即时控制
 */
@Getter
@Setter
public class RealTimeControlReq {
    /**
     * 操作ID
     */
    private Integer operationId;
    /**
     * 时间戳
     */
    private String timestamp;
    /**
     * 油门控制 <br/>
     * 0 - 油门关闭  <br/>
     * 1 - 油门开启 <br/>
     */
    private Integer accCTL;
    /**
     * 车辆控制 <br/>
     * 0 - 关闭电源(预留)  <br/>
     * 1 - 开启电源(预留)  <br/>
     * 2 - 重启  <br/>
     * 3 - 车辆断电，进入运输模式  <br/>
     */
    private Integer vehicleCTL;
    /**
     * 寻找车辆 <br/>
     * 该值为1（默认值）<br/>
     */
    private Integer lookEB;
    /**
     * 蜂鸣器控制 <br/>
     * 0 - 关闭 <br/>
     * 1 - 启用 <br/>
     */
    private Integer beepAlarm;
    /**
     * 重置iot配置
     * 1 - 启用
     */
    private Integer iotCfgReset;
    /**
     * 照面控制
     */
    private Light lightCTL;
    /**
     * 锁控制
     */
    private Lock lockCTL;
    /**
     * 音频控制
     */
    private Audio audioCTL;

    @Getter
    @Setter
    public static class Light {
        /**
         * 前照灯控制模式 <br/>
         * 0 - 关闭 <br/>
         * 1 - 始终打开 <br/>
         * 2 - 闪烁 <br/>
         */
        private String headLight;
        /**
         * 后照灯控制模式 <br/>
         * 0 - 关闭 <br/>
         * 1 - 始终打开 <br/>
         * 2 - 闪烁 <br/>
         */
        private String rearLight;
    }

    @Getter
    @Setter
    public static class Lock {
        /**
         * 车辆锁 <br/>
         * 0 - 禁用 <br/>
         * 1 - 启用 <br/>
         */
        private Integer vehicleLock;
        /**
         * 电池锁 <br/>
         * 0 - 禁用 <br/>
         * 1 - 启用 <br/>
         */
        private Integer batLock;
        /**
         * 线锁 <br/>
         * 0 - 禁用 <br/>
         * 1 - 启用 <br/>
         */
        private Integer cableLock;
        /**
         * 头盔锁 <br/>
         * 0 - 禁用 <br/>
         * 1 - 启用 <br/>
         */
        private Integer helmetLock;
        /**
         * 轮毂锁 <br/>
         * 0 - 禁用 <br/>
         * 1 - 启用 <br/>
         */
        private Integer hubLock;
    }

    @Getter
    @Setter
    public static class Audio {
        /**
         * 音频播放 <br/>
         * 0 - 停止 <br/>
         * 1 - 播放 <br/>
         */
        private Integer type;
        /**
         * 要播放/已停止播放的音频的文件号。有关音频文件编号 <br/>
         * 1-10（车辆操作语音提示） <br/>
         * 91-99（自定义的语音提示） <br/>
         */
        private Integer audioFile;
    }

}
